package net.lab1024.sa.admin.module.business.core.material.domain.form;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;
import lombok.Data;

/**
 * 物料分类表 新建表单
 *
 * @Author ADog
 * @Date 2025-09-19 19:48:13
 * @Copyright 1.0
 */

@Data
public class MaterialCategoryAddForm {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long materialCategoryId;

    @Schema(description = "父级id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long parentId;

    @Schema(description = "物料分类名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "物料分类名称 不能为空")
    private String materialCategoryName;

    @Schema(description = "物料分类类型（0：原材料,1：半成品,2：产成品）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "物料分类类型（0：原材料,1：半成品,2：产成品） 不能为空")
    private Integer materialCategoryType;

    @Schema(description = "是否叶子节点（0：否，1：是）", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer isLeaf;

    @Schema(description = "排序号，自动递增，用于自定义显示顺序", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer sortOrder;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "禁用状态", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer disabledFlag;

    @Schema(description = "删除状态", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer deletedFlag;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime updateTime;

}